﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Threading.Tasks;

namespace AccesoDatos.DAO
{
    public class Configuracion : DAO_Base_modelo_entidades
    {
        // Atributos de manejo de instancia (singleton)
        static Configuracion instance = null;
        //-----------------------------------------------------------------------------------------

        public static string Servidor
        {
            get
            {
                if (instance == null)
                {
                    nueva_instancia();
                }

                return acceso_ModeloEntidades.Database.Connection.DataSource.ToString();
            }
            set
            {

                if (instance == null)
                {
                    nueva_instancia();
                }

                // Constructor de cadena de conexion
                var sqlBuilder =  new SqlConnectionStringBuilder();

                // Configuracion de propiedades del origen de datos (cadena de conexion).
                sqlBuilder.DataSource = value;
                sqlBuilder.InitialCatalog = acceso_ModeloEntidades.Database.Connection.Database;
                sqlBuilder.IntegratedSecurity = true;

                // Asignamos la cadena de conexion al contexto.
                acceso_ModeloEntidades.Database.Connection.ConnectionString = sqlBuilder.ToString();
            }

          
        }

        public static Configuracion Instance
        {
            get
            {
                if (instance == null)
                {
                    lock (padlock)
                    {
                        if (instance == null)
                        {
                            nueva_instancia();
                        }
                    }
                }
                return instance;
            }
        }

        private static void nueva_instancia()
        {
            instance = new Configuracion();
        }

    }
}
